// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mostbet AZ – rəsmi sayt vasitəsilə bukmeker və kazino dünyasına daxil ol – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mostbet AZ – rəsmi sayt vasitəsilə bukmeker və kazino dünyasına daxil ol

Mostbet.com – Azərbaycanda ən məşhur bukmeker və kazino saytlarından biridir. mostbet az qeydiyyat üçün mostbet.az saytına daxil olun və bütün imkanların keyfiyyətli əyləncəsindən həzz alın!

Azərbaycanda kazino saytlari arasında əvəzolunmaz olan Mostbet Azerbaijan ilə həm yeni başlayanlar, həm də təcrübəli oyunçular üçün müxtəlif oyun növləri və bonuslar təqdim edir. Mostbet giriş üçün sadəcə mostbet az saytına daxil olun və ya mosbet az mobil tətbiqindən istifadə edin!

Mostbet AZ Üçün Əsas Xüsusiyyətlər

  • mostbet.az – Azərbaycanda ən təhlükəsiz və etibarlı platformalardan biridir.
  • İstifadəçilər üçün rahat mostbet giriş interfeysi təmin edir.
  • mostbet az qeydiyyat sadə və sürətli prosesdir.
  • mostbet azerbaijan böyük seçimli kazino oyunları və idman yayımı təklif edir.
  • mostbet.com və mostbet az eyni platformada birləşdirərək geniş imkanlar təqdim edir.
  • mosbet azerbaycan istifadəçilərə xüsusi bonuslar və endirimlər təklif edir.
  • azerbaycanda kazino saytlari arasında ən məşhur və seçilmiş sayılır.

Mostbet AZ ilə idman yayımı və kazino əyləncələri bir araya gətirilir. mostbet və mosbet azerbaycan istifadəçilərə unikal təcrübə yaratmaq üçün hərəkət edir.

Mostbet AZ-da Qeydiyyat Prosesi

Mostbet Azerbaijan platformasında qeydiyyatınızı asanlıqla tamamlaya bilərsiniz. Mostbet.az rəsmi saytında qeydiyyat üçün yalnız bir neçə addım tələb olunur. Əgər Mostbet giriş etmək istəyirsinizsə, əvvəlcə Mostbet AZ qeydiyyat prosesini başa düşməlisiniz.

İlk addım olaraq, Mostbet.com və ya Mostbet.az saytına daxil olun. Qeydiyyat düyməsini seçərək, tələb olunan məlumatları doldurun. Mostbet AZ qeydiyyat zamanı şəxsi məlumatlarınızı və e-poçt ünvanınızı təqdim etməlisiniz. Bundan sonra, hesabınızı təsdiqləmək üçün e-poçtınıza gələn linkə klik edin.

Qeydiyyat prosesi bitdikdən sonra, Mostbet giriş etməklə platformanın bütün imkanlarından yararlanmağa başlaya bilərsiniz. Mostbet Azerbaijan istifadəçilərinə geniş çeşidli oyunlar və bonuslar təqdim edir. Mostbet AZ qeydiyyatınızı edib, indi siz də bu imkanlardan yararlanın!

Mostbet AZ-da Bonuslar və Promo Kodlar

Mostbet Azerbaijan üçün bonuslar və promo kodlar müştərilərin marağını çəkən əsas baxımlardan biridir. Mostbet.az rəsmi saytında yeni istifadəçilər üçün xüsusi təkliflər və endirimlər təqdim olunur. Mostbet AZ qeydiyyat zamanı istifadə edilə biləcək promo kodlar ilə siz daha çox üstünlük əldə edə bilərsiniz.

Mostbet Giriş etdikdən sonra bonuslarınızı aktivləşdirərək oyun və ya idman yayımı zamanı daha çox mənfəət əldə edə bilərsiniz. Azerbaycanda kazino saytlari arasında Mostbet unikal təklifləri və yüksək keyfiyyətli xidmətləri ilə fərqlənir. Mosbet AZ istifadəçiləri üçün həm yeni, həm də mövcud müştərilər üçün xüsusi bonuslar təqdim edilir.

Bonuslar və promo kodlarla oyun təcrübənizi daha maraqlı və mənfəətli etmək üçün Mostbet Azerbaycan saytını ziyarət edin. Mosbet ilə siz həm əylənə, həm də qazana bilərsiniz!

Mostbet AZ-da İdman Vahidləri

Mostbet AZ, Azərbaycanda ən müasir idman vahidləri ilə təmin olunmuş ən etibarlı bukmeker və kazino saytlarından biridir. Mostbet giriş imkanı vasitəsilə istifadəçilərə geniş imkanlar təqdim edir. Mostbet Azerbaijan və Mostbet Azerbaijan istifadəçiləri üçün rahat interfeys və yüksək keyfiyyətli xidmət təklif edir.

Mostbet AZ-da idman vahidləri ilə maraqlananlar üçün geniş bir seçim mövcuddur. Mostbet.az saytı vasitəsilə istifadəçilər ən son idman hadisələrinə qoşula və şansınızı sınaya bilərsiniz. Mostbet.com ünvanı da istifadəçilərə global ölkələrdə olan idman yarışlarına qoşulmaq imkanı verir.

Mostbet AZ qeydiyyatı asan və sürətli prosesdir. Mostbet Az və Mostbet Az istifadəçiləri üçün xüsusi bonuslar və təkliflər mövcuddur. Azərbaycanda kazino saytlari arasında Mostbet unikal müalicəyə malikdir və istifadəçilərə yalnız idman vahidləri deyil, həm də zəngin kazino oyunları təqdim edir.

Mostbet AZ-da idman vahidləri ilə maraqlananlar üçün əlavə imkanlar da mövcuddur. Mostbet giriş vasitəsilə istifadəçilər ən son statistikaları, nəticələri və analizləri izləyə bilərlər. Mostbet Azerbaijan istifadəçiləri üçün rahat və təhlükəsiz əyləncə təmin olunur.

Mostbet AZ-da kazino oyunları

Mostbet Azerbaijan platformasında zəngin kazino oyunları təklif olunur. Mostbet giriş vasitəsilə istifadəçilər mostbet.com və ya mostbet.az saytlarına daxil ola və geniş oyun seçimi ilə tanış ola bilərlər. Mosbet AZ-da oyunçular üçün klassik və müasir slotlar, poker, rulet və daha bir çox oyun növü mövcuddur.

Mostbet Azərbaycan istifadəçiləri üçün rahat interfeys və həssas məşq imkanları təqdim edir. Mostbet AZ qeydiyyatı sadə və sürətli prosesdir, bu da yeni oyunçuların platformaya asanlıqla qoşula bilməsini təmin edir. Mosbet Azerbaycan saytında oyunçular üçün həm əyləncə, həm də qazanmaq üçün böyük şanslar mövcuddur.

Azerbaycanda kazino saytlari arasında Mostbet AZ unikal mövqeyə malikdir. Mosbet platformasında oyunçular üçün hər zaman yeni təkliflər və bonuslar mövcuddur. Mostbet AZ-da oyun seçimi və keyfiyyəti ilə tanış olun və öz şansınızı sınayın!

Mostbet AZ Müştəri Dəstəyi

Mostbet AZ, Azərbaycanda kazino saytlari arasında əvəzolunmaz bir mühit yaradır. Mostbet.com saytı vasitəsilə istifadəçilərə geniş imkanlar təqdim edir. Mosbet və Mostbet azerbaijan müştərilərinə xüsusi diqqət yetirir. Mostbet.az giriş zamanı sizə rahat və təhlükəsiz bir təcrübə təmin edir.

Mostbet AZ qeydiyyat prosesi asan və sürətli keçirilir. Mostbet azerbaycan istifadəçilərinə müxtəlif üstünlüklər və bonuslar təklif edir. Mosbet azerbaycan müştəri dəstəyi hər zaman hazırdır, suallarınızı cavablandırmaq və problemlərinizi həll etmək üçün.

Xidmət
Üstünlüklər

24/7 Dəstək Hər zaman əlaqə saxlaya bilərsiniz Tez Cavablandırma Suallarınız tez bir zamanda cavablandırılır Şəxsi Müştəri Dəstəyi Hər bir müştəri üçün fərdi yanaşma

Mostbet AZ, Azərbaycanda kazino saytlari arasında ən yaxşı seçimdir. Mostbet giriş və Mostbet AZ qeydiyyat vasitəsilə siz də bu unikal təcrübədən yararlanacaqsınız.

Mostbet AZ-da Ödəniş Üsulları

Mostbet Azerbaycan (Mostbet Azerbaijan) platformasında rahat və sürətli ödəniş prosesləri təmin olunur. Mostbet.az saytında istifadəçilər bir çox müxtəlif ödəniş üsullarından istifadə edə bilərlər. Bu üsullar arasında bank kartları, elektron pul kisələri və mobil ödənişlər daxildir.

Mostbet AZ (Mosbet AZ) istifadəçiləri üçün əsas məqsəd təhlükəsiz və asan əldə etmə prosesini təmin etməkdir. Mostbet Giriş (Mostbet Giriş) zamanı sizə rahatlıq və təhlükəsizlik təmin olunur. Mostbet AZ Qeydiyyat (Mostbet AZ Qeydiyyat) prosesini bitirdikdən sonra dərhal ödənişlərinizi həyata keçirə bilərsiniz.

Azerbaycanda kazino saytlari arasında Mostbet Azerbaycan (Mosbet Azerbaycan) unikal xidmətləri və müasir texnologiyaları ilə fərqlənir. Mostbet Az (Mosbet Az) istifadəçiləri üçün həm kazino oyunları, həm də idman mərc oyunları mövcuddur. Mostbet (Mostbet.az) platformasında hər bir oyunçu üçün uyğun ödəniş üsulları seçimi mümkündür.

Mostbet Azerbaycan (Mostbet Azerbaijan) istifadəçiləri üçün ödənişlərin təhlükəsizliyi və sürətli həyata keçirilməsi əsas prioritetdir. Mostbet AZ (Mosbet AZ) ilə əylənərkən rahatlıq və əmin-itiqot hissini yaşayacaqsınız.

Design and Develop by Ovatheme